import wepy from 'wepy'

export default class extends wepy.mixin {
  data = {
    // 购物车商品列表
    cart: ''
  }

  methods = {
    countChange (e) {
      // 获取最新的数量
      let count = e.detail
      // 获取数据改变的那个商品的 id
      let id = e.target.dataset.id
      this.$parent.updateGoodsCount(id, count)
    },

    statusChanged (e) {
      // 获取复选框的状态
      let status = e.detail
      // 获取数据改变的那个商品的 id
      let id = e.target.dataset.id

      this.$parent.updateGoodsStatus(id, status)
    },

    close (goodId) {
      this.$parent.removeGoodsById(goodId)
    },

    onFullCheckChanged (e) {
      console.log(e.detail)
      // this.$parent 是 wepy 底层给封装好，它能够驱动视图的更新
      this.$parent.updateAllGoodsStatus(e.detail)
    },
    submitOrder () {
      if (this.amount <= 0) {
        return wepy.baseToast('订单金额不能为空！')
      }

      wepy.navigateTo({
        url: '/pages/order'
      })
    }
  }

  computed = {
    isEmpty () {
      if (this.cart.length <= 0) {
        return true
      }
      return false
    },
    amount () {
      // 已勾选商品的价格
      let total = 0

      this.cart.forEach(item => {
        // 判断isCheck是否为 true，为 true 说明是已经勾选的
        if (item.isCheck) {
          total += item.price * item.count
        }
      })

      return total * 100
    },
    isFullChecked () {
      // 判断商品个数和商品的 isCheck 为 true的个数是否一致

      const allCount = this.cart.length

      let c = 0
      this.cart.forEach(item => {
        if (item.isCheck) {
          c++
        }
      })

      return allCount === c
    }
  }

  onLoad () {
    this.cart = this.$parent.globalData.cart
  }
}
